Calendar All Tests
Current file: /home/estudydev/workspace/eStudy_svn/web/ressourcen/classes/class.insert.inc.php
Legend: executed not executed dead code

  Coverage
  Classes Methods Lines
Total
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 8
0.00 %0.00%
0.00% 0 / 505
 
Insert
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 8
0.00 %0.00%
0.00% 0 / 505
 public function __construct()
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 12
 public function showForm($fileUpload = false, $copyFile = NULL)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 254
 public function printSubFolder($fileID, $sqlAdd, &$folderArr, $count = 0, $layer = '··')
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 10
 public function fileSizeOK($size)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 5
 public function fileExtOK($name)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 12
 public function sendEmail($fileID, $toTeachers = false)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 32
 public function resolveForm($data)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 161
 private function uploadFile($data)
0.00 %0.00%
0.00% 0 / 1
0.00 %0.00%
0.00% 0 / 19


       1                 : <?php                                                                                                                       
       2                 : /*--------------------------------------------------------------------------+                                               
       3                 : This file is part of eStudy.                                                                                                
       4                 : admin/index.php                                                                                                             
       5                 : - Modulgruppe:  File Manager                                                                                                
       6                 : - Beschreibung: Neuer, revolutionaerer File Manager                                                                         
       7                 : - Version:      0.1, 09/09/04                                                                                               
       8                 : - Autor(en):    Thorsten Buss <admin@drstone.de>,                                                                           
       9                 : Michael Plefka <freAk0r@gmx.net>                                                                                            
      10                 : +---------------------------------------------------------------------------+                                               
      11                 : This program is free software; you can redistribute it and/or                                                               
      12                 : modify it under the terms of the GNU General Public License                                                                 
      13                 : as published by the Free Software Foundation; either version 2                                                              
      14                 : of the License, or any later version.                                                                                       
      15                 : +---------------------------------------------------------------------------+                                               
      16                 : This program is distributed in the hope that it will be useful,                                                             
      17                 : but WITHOUT ANY WARRANTY; without even the implied warranty of                                                              
      18                 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                                               
      19                 : GNU General Public License for more details.                                                                                
      20                 : You should have received a copy of the GNU General Public License                                                           
      21                 : along with this program; if not, write to the Free Software                                                                 
      22                 : Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.                                                 
      23                 : +--------------------------------------------------------------------------*/                                               
      24                 :                                                                                                                             
      25                 : if (!defined("PATH_TO_ROOT")) {                                                                                             
      26                 :     define("PATH_TO_ROOT", "../../");                                                                                       
      27                 : }                                                                                                                           
      28                 :                                                                                                                             
      29                 : /**                                                                                                                         
      30                 :  * File Manager                                                                                                             
      31                 :  * @package eStudy.Ressourcen                                                                                               
      32                 :  * @version 0.2, 20/09/04                                                                                                   
      33                 :  * @author Thorsten Buss <admin@drstone.de>                                                                                 
      34                 :  * @author Michael Plefka <freAk0r@gmx.net>                                                                                 
      35                 :  */                                                                                                                         
      36                 : /** Einbinden des Output Utilities */                                                                                       
      37                 : require_once (PATH_TO_ROOT."common/classes/class.output.inc.php");                                                          
      38                 : require_once (PATH_TO_ROOT."common/classes/class.email.inc.php");                                                           
      39                 : /** Einbinden der Datum/Zeit Funktionen */                                                                                  
      40                 : require_once (PATH_TO_ROOT."common/classes/class.dateselection.inc.php");                                                   
      41                 : /** Einbinden des Formual Generators */                                                                                     
      42                 : require_once (PATH_TO_ROOT."common/classes/class.formular.inc.php");                                                        
      43                 : require_once (PATH_TO_ROOT."roleplay/classes/class.roleartefacts.inc.php");                                                 
      44                 : require_once (PATH_TO_ROOT."teams/classes/class.teamartefacts.inc.php");                                                    
      45                 : /** Die Spider-Klasse der Suchmaschine einbinden */                                                                         
      46                 : require_once (PATH_TO_ROOT."suchmaschine/classes/class.spider.inc.php");                                                    
      47                 : /**                                                                                                                         
      48                 :  * Generiert Formular für Upload, Prüft Dateigröße und -typ                                                             
      49                 :  * @package eStudy.Ressourcen                                                                                               
      50                 :  * @version 0.2, 20/09/04                                                                                                   
      51                 :  * @author Thorsten Buss <admin@drstone.de>                                                                                 
      52                 :  * @author Michael Plefka <freAk0r@gmx.net>                                                                                 
      53                 :  */                                                                                                                         
      54                 : class Insert {                                                                                                              
      55                 :     /**                                                                                                                     
      56                 :      * Die maximale Größe für hochgeladene Dateien.                                                                      
      57                 :      * @access private                                                                                                      
      58                 :      * @private integer                                                                                                     
      59                 :      */                                                                                                                     
      60                 :     private $maxFileSize;                                                                                                   
      61                 :     /**                                                                                                                     
      62                 :      * Verbotene Dateiendungen                                                                                              
      63                 :      * @access private                                                                                                      
      64                 :      * @private array                                                                                                       
      65                 :      */                                                                                                                     
      66                 :     private $forbiddenFileExtensions;                                                                                       
      67                 :     /**                                                                                                                     
      68                 :      * Rolle des aktuellen Benutzers, falls eine eingenommen wird.                                                          
      69                 :      * @access private                                                                                                      
      70                 :      * @private object                                                                                                      
      71                 :      */                                                                                                                     
      72                 :     private $role = null;                                                                                                   
      73                 :     /**                                                                                                                     
      74                 :      * Team des Benutzers                                                                                                   
      75                 :      * @access private                                                                                                      
      76                 :      * @private object                                                                                                      
      77                 :      */                                                                                                                     
      78                 :     private $team = null;                                                                                                   
      79                 :                                                                                                                             
      80                 :     /**                                                                                                                     
      81                 :      * Konstruktor.                                                                                                         
      82                 :      * @access public                                                                                                       
      83                 :      */                                                                                                                     
      84                 :     public function __construct() {                                                                                         
      85               0 :         global $settings;                                                                                                   
      86               0 :         if (is_numeric($settings['filemanager_max_filesize'])) {                                                            
      87               0 :             $this->maxFileSize = $settings['filemanager_max_filesize'];                                                     
      88               0 :         }                                                                                                                   
      89               0 :         $this->forbiddenFileExtensions = $settings['filemanager_forbidden_extensions'];                                     
      90               0 :         if (isset($_SESSION["roleID"])) {                                                                                   
      91               0 :             $this->role = new Role($_SESSION["roleID"]);                                                                    
      92               0 :         }                                                                                                                   
      93               0 :         if (isset($_SESSION["teamID"])) {                                                                                   
      94               0 :             $this->team = new Team($_SESSION["teamID"]);                                                                    
      95               0 :         }                                                                                                                   
      96               0 :     }                                                                                                                       
      97                 :     /**                                                                                                                     
      98                 :      * Generiert Formular für Insert                                                                                       
      99                 :      * @access public                                                                                                       
     100                 :      * @return void                                                                                                         
     101                 :      */                                                                                                                     
     102                 :     public function showForm($fileUpload = false, $copyFile = null) {                                                       
     103               0 :         global $db, $EZSQL_ERROR;                                                                                           
     104                 :         // Initialisierung                                                                                                  
     105               0 :         $maxFileSize = $this->maxFileSize;                                                                                  
     106               0 :         $forbiddenFileExtensions = $this->forbiddenFileExtensions;                                                          
     107               0 :         $time = time();                                                                                                     
     108               0 :         $sqlAdd = "";                                                                                                       
     109               0 :         $heute = getdate();                                                                                                 
     110               0 :         $course = $_SESSION['course'];                                                                                      
     111               0 :         $form = new Formular();                                                                                             
     112                 :         // INITIALISIERUNG von Kalender Anzeige                                                                             
     113                 :         // DateSelection Objekt erzeugen und das heutige (start-) Datum einstellen                                          
     114               0 :         $calendar = new DateSelection(                                                                                      
     115               0 :             $heute['mday'], $heute['mon'], $heute['year'], $heute['hours'], $heute['minutes']                               
     116               0 :         );                                                                                                                  
     117                 :         //Javascript deaktivieren                                                                                           
     118               0 :         $calendar->autoUpdate = false;                                                                                      
     119                 :         //Name des Formulars einstellen                                                                                     
     120               0 :         $calendar->formName = "insert";                                                                                     
     121                 :         //Die Ausgabestrings löschen (keine Bezeichner vor den Auswahlfeldern)                                             
     122               0 :         $calendar->clearStrings();                                                                                          
     123                 :                                                                                                                             
     124                 :         // URL ins Feld einfügen und Radio Button vorselektieren, sofern übergeben                                        
     125               0 :         if(isset($_GET['url'])) {                                                                                           
     126               0 :             $actionChecked = 'link';                                                                                        
     127               0 :             $linkUrl = $_GET['url'];                                                                                        
     128               0 :         }                                                                                                                   
     129                 :         else {                                                                                                              
     130               0 :             $linkUrl = '';                                                                                                  
     131               0 :             $actionChecked = '';                                                                                            
     132                 :         }                                                                                                                   
     133                 :                                                                                                                             
     134                 :         // Link Name ins Feld einfügen, sofern übergeben                                                                  
     135               0 :         if(isset($_GET['name']))                                                                                            
     136               0 :             $linkName = $_GET['name'];                                                                                      
     137                 :         else                                                                                                                
     138               0 :             $linkName = '';                                                                                                 
     139                 :                                                                                                                             
     140                 :         // BEGIN von Formular erstellen                                                                                     
     141                 :         // Init                                                                                                             
     142               0 :         $form->setFormHead(                                                                                                 
     143               0 :             "insert", "", "post", "multipart/form-data", "onsubmit=\"".                                                     
     144               0 :             (!$fileUpload ? "if (document.getElementById('link_ID').checked == false &amp;&amp;                             
     145               0 :             document.getElementById('folder_ID').checked == false".(($_SESSION['usergroup'] != STUDENT                      
     146               0 :             && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER                                      
     147               0 :             && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"])                                             
     148               0 :             ? " &amp;&amp; document.getElementById('ROOT_ID').checked == false" : "") .                                     
     149                 :             ") { alert('Bitte w&auml;hlen Sie, ob Sie einen Link oder Ordner                                                
     150               0 :             erstellen wollen!'); return false; } ":                                                                         
     151               0 :                 "") ."if (document.getElementById('folder').value == ''".(!$fileUpload &&                                   
     152               0 :             (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS &&                                     
     153               0 :             $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) ||                                        
     154               0 :             isset($_SESSION["assistent"])) ? " &amp;&amp; document.getElementById('ROOT_ID').                               
     155               0 :             checked == false" : "") .") { alert('Bitte w&auml;hlen Sie einen Zielordner!');                                 
     156                 :             return false; }\""                                                                                              
     157               0 :         );                                                                                                                  
     158               0 :         $form->setTemplate(                                                                                                 
     159               0 :             "<table width='100%'>", "<tr valign='top'><td class='tableCell'                                                 
     160               0 :             width='50%'>", "<td class='tableCell' width='50%'>"                                                             
     161               0 :         ); // Setzt die UmgebungsTags                                                                                       
     162               0 :         $form->setButtons(1, "Abschicken"); //Setzt die Buttons                                                             
     163               0 :         if (isset($this->role)) {                                                                                           
     164               0 :             $form->addRawCode(                                                                                              
     165                 :                 "<tr><td class='message' colspan='2'>Sie nehmen zur Zeit die Rolle <strong>".                               
     166               0 :             Data::toHTML($this->role->getName($_SESSION["gender"]), false) ."</strong> ein.<br />Wenn Sie ".                
     167               0 :             ($fileUpload ? "eine Datei hochladen, wird diese" : "einen Ordner oder Link erstellen, wird dieser") .          
     168                 :             " unter Ihrem Rollennamen ver&ouml;ffentlicht.</td></tr>"                                                       
     169               0 :             );                                                                                                              
     170               0 :         }                                                                                                                   
     171                 :         // TrennZeile                                                                                                       
     172                 :         // Fuegt eine Ueberschriftszeile ein wenn eine Datei hochgeladen werden soll                                        
     173               0 :         $form->addRawCode("<tr><td class='tableHead' colspan='2'>Ben&ouml;tigte Einstellungen</td></tr>");                  
     174               0 :         if ($fileUpload) {                                                                                                  
     175               0 :             $form->addInput("hidden", "type", "", 1, "file");                                                               
     176               0 :             $form->addInput("hidden", "MAX_FILE_SIZE", "", 1, $maxFileSize*1024*1024);                                      
     177                 :                                                                                                                             
     178                 :             // MultiUpload: Titel fuer jede einzelne Upload-Moeglichkeit                                                    
     179               0 :             $form->addRawCode(                                                                                              
     180                 :                 "</table><div id='uploads'><table width='100%'><tr valign='top'>                                            
     181                 :                 <td class='tableHead' colspan='2'><div style='text-align:center;'>                                          
     182                 :                 Dateiinformationen f&uuml;r 1. Datei</div></td></tr>"                                                       
     183               0 :             );                                                                                                              
     184                 :                                                                                                                             
     185               0 :             $name = (!is_null($copyFile)) ? $copyFile->getName() : "";                                                      
     186               0 :             $form->addInput(                                                                                                
     187               0 :                 "text", "name[]", "Bitte geben Sie einen aussagekr&auml;ftigen Namen f&uuml;r                               
     188               0 :                 die Datei ein:<br/><span class='text10'>(max. 40 Zeichen)</span>", 50, $name, 40                            
     189               0 :             );                                                                                                              
     190                 :             // Beschreibung fuer DateiName auswahlen wird konstruiert (mit erlaubter Endung und max Groesse)                
     191               0 :             if (!is_null($copyFile)) {                                                                                      
     192               0 :                 $form->addInput("hidden", "copyFile", "", 1, $copyFile->getID());                                           
     193               0 :                 $form->addRawCode("<tr><td>Datei kopieren</td><td>".$copyFile->getOrigFileName()."</td></tr>");             
     194               0 :             } else {                                                                                                        
     195               0 :                 $string = "Bitte w&auml;hlen Sie eine Datei aus:<br/>";                                                     
     196               0 :                 $string.= "<span class='text10'>";                                                                          
     197               0 :                 if ($maxFileSize) $string.= "max. ".$maxFileSize." MB";                                                     
     198               0 :                 if ($maxFileSize && $forbiddenFileExtensions) $string.= ", ";                                               
     199               0 :                 if ($forbiddenFileExtensions) {                                                                             
     200               0 :                     $string.= "keine ";                                                                                     
     201               0 :                     if (is_array($forbiddenFileExtensions)) {                                                               
     202               0 :                         foreach($forbiddenFileExtensions as $value) $string.= ".".$value." ";                               
     203               0 :                     } else $string.= ".".$forbiddenFileExtensions." Dateien";                                               
     204               0 :                 }                                                                                                           
     205               0 :                 $string.= "</span>";                                                                                        
     206               0 :                 $form->addInput("file", "userfile[]", $string, 34);                                                         
     207                 :                                                                                                                             
     208               0 :                 $form->addTextArea("comment[]", "Datei-Beschreibung (optional)", 40, 3, "");                                
     209                 :                                                                                                                             
     210                 :                 // MultiUpload: Link zu JavaScript-Funktion um zusaetzliches Upload-Formular einzublenden                   
     211               0 :                 $form->addRawCode(                                                                                          
     212                 :                     "</table></div><table width='100%'><tr valign='top'><td class='tableCell' colspan='2'>                  
     213                 :                     <p style='text-align:right;'>                                                                           
     214                 :                         <script>document.write(\"<a href='#' onclick='one_more_upload();                                    
     215                 :                         return false;'>Mehr Dateien Uploaden</a>\");</script>                                               
     216                 :                     </p></td></tr>"                                                                                         
     217               0 :                 );                                                                                                          
     218                 :             }                                                                                                               
     219               0 :         } else { // Wenn Ordner oder Link erstellt werden soll                                                              
     220               0 :             $folderJS = (($_SESSION['usergroup'] != STUDENT                                                                 
     221               0 :             && $_SESSION['usergroup'] != ALUMNUS                                                                            
     222               0 :             && $_SESSION['usergroup'] != SCHUELER                                                                           
     223               0 :             && $_SESSION['usergroup'] != GAST)                                                                              
     224               0 :                 ? "document.getElementById('student_write').disabled=false;" : "") .                                        
     225               0 :                 "document.getElementById('userfileLink').style.display='none';".                                            
     226               0 :                 "document.getElementById('userfileFolder').style.display='inline';".                                        
     227               0 :                 "document.getElementById('nameLink').style.display='none';".                                                
     228               0 :                 "document.getElementById('nameFolder').style.display='inline';";                                            
     229                 :             $radio = array(array(                                                                                           
     230               0 :                 "Link hinzuf&uuml;gen", "link", "onclick=\"".(($_SESSION['usergroup'] != STUDENT                            
     231               0 :                 && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER                                  
     232               0 :                 && $_SESSION['usergroup'] != GAST) ? "document.getElementById('student_write').disabled=true;" : "") .      
     233               0 :                 "document.getElementById('userfileLink').style.display='inline';".                                          
     234               0 :                 "document.getElementById('userfileFolder').style.display='none';".                                          
     235               0 :                 "document.getElementById('nameLink').style.display='inline';".                                              
     236               0 :                 "document.getElementById('nameFolder').style.display='none';".                                              
     237               0 :                 "document.getElementById('folder').disabled=false\""), array(                                               
     238               0 :                     "Ordner erstellen", "folder", "onclick=\"$folderJS"."document.getElementById('folder').disabled=false\""
     239               0 :                 )                                                                                                           
     240               0 :             );                                                                                                              
     241                 :             // Wenn Admin, Dozent oder Tutor, dann darf er auch einen Root Ordner erstellen                                 
     242               0 :             if (($_SESSION['usergroup'] != STUDENT                                                                          
     243               0 :             && $_SESSION['usergroup'] != ALUMNUS                                                                            
     244               0 :             && $_SESSION['usergroup'] != SCHUELER                                                                           
     245               0 :             && $_SESSION['usergroup'] != GAST)                                                                              
     246               0 :             || isset($_SESSION["assistent"])) {                                                                             
     247               0 :                 $radio[] = array(                                                                                           
     248               0 :                     "Hauptordner erstellen", "ROOT", "onclick=\"$folderJS".                                                 
     249                 :                     "document.getElementById('folder').disabled=true\""                                                     
     250               0 :                 );                                                                                                          
     251               0 :             }                                                                                                               
     252                 :                                                                                                                             
     253               0 :             $form->addRadio(                                                                                                
     254               0 :                 "type", $radio, "Aktion w&auml;hlen:" . (($_SESSION['usergroup'] != STUDENT                                 
     255               0 :                 && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER                                  
     256               0 :                 && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"])                                         
     257               0 :                 ? "" : "<br/><span class='text10'>(Hauptordner sind Ordner auf oberster Ebene)</span>"),                    
     258                 :                 $actionChecked                                                                                              
     259               0 :             );                                                                                                              
     260                 :                                                                                                                             
     261               0 :             if (($_SESSION['usergroup'] != STUDENT                                                                          
     262               0 :             && $_SESSION['usergroup'] != ALUMNUS                                                                            
     263               0 :             && $_SESSION['usergroup'] != SCHUELER                                                                           
     264               0 :             && $_SESSION['usergroup'] != GAST)                                                                              
     265               0 :             || isset($_SESSION["assistent"])) {                                                                             
     266               0 :                 $form->addToNextTag("id='student_write'");                                                                  
     267               0 :                 $form->addInput(                                                                                            
     268               0 :                     "checkbox", "student_write", "<strong>Nur f&uuml;r Ordner: </strong>                                    
     269                 :                     Schreibberechtigung f&uuml;r Studenten"                                                                 
     270               0 :                 );                                                                                                          
     271               0 :             }                                                                                                               
     272                 :                                                                                                                             
     273               0 :             $form->addInput(                                                                                                
     274               0 :                 "text", "userfile", "<span id='userfileLink'><strong>Link: </strong>Bitte geben                             
     275                 :                 Sie eine URL ein.<br/></span><span id='userfileFolder'><strong>Ordner: </strong>Bitte                       
     276                 :                 geben Sie einen Ordnernamen ein.<br/><span class='text10'>(OrdnerName =&gt; max. 20 Zeichen)                
     277               0 :                 </span></span>", 41, $linkUrl                                                                               
     278               0 :             );                                                                                                              
     279               0 :             $form->addInput(                                                                                                
     280               0 :                 "text", "name", "<span id='nameLink'><strong>Link: </strong>Bitte geben Sie einen                           
     281                 :                 Namen f&uuml;r den Link an.<br/></span><span id='nameFolder'><strong>Ordner: </strong>                      
     282                 :                 Bitte geben Sie einen erl&auml;uternden Namen (Tooltip) f&uuml;r den Ordner an.<br/>                        
     283               0 :                 </span><span class='text10'>(max. 40 Zeichen)</span>", 41, $linkName, 40                                    
     284               0 :             );                                                                                                              
     285                 :         }                                                                                                                   
     286                 :                                                                                                                             
     287                 :         // SQL Abfragen fuer Unterschiedliche UserGruppen => admin und Dozenten duerfen alle Dateien und Verz. sehen        
     288               0 :         if (($_SESSION['usergroup'] == STUDENT                                                                              
     289               0 :         || $_SESSION['usergroup'] == ALUMNUS                                                                                
     290               0 :         || $_SESSION['usergroup'] == SCHUELER                                                                               
     291               0 :         || $_SESSION['usergroup'] == GAST)                                                                                  
     292               0 :         || isset($_SESSION["assistent"])) {                                                                                 
     293               0 :             $sqlAdd = "AND (userID='".$_SESSION['userid'].                                                                  
     294               0 :                 "' OR (visible_type='1' AND start_time<'$time' AND                                                          
     295               0 :                 end_time>'$time' AND student_write=1) )";                                                                   
     296               0 :         }                                                                                                                   
     297               0 :         elseif ($_SESSION['usergroup'] == SEKRETARIAT) {                                                                    
     298               0 :             $sqlAdd = "AND (userID='".$_SESSION['userid']."' OR visible_type<=2)";                                          
     299               0 :         }                                                                                                                   
     300                 :                                                                                                                             
     301                 :         // Zeichnet die OrdnerListe in Baumstruktur                                                                         
     302               0 :         $folderArr = NULL;                                                                                                  
     303               0 :         $this->printSubFolder(0, $sqlAdd, $folderArr, 0, "");                                                               
     304               0 :         $selectedFolder = "";                                                                                               
     305               0 :         if (isset($_SERVER["HTTP_REFERER"])) {                                                                              
     306               0 :             if (preg_match("/activeFolder=([0-9]+)/", $_SERVER["HTTP_REFERER"], $selectedFolder)) {                         
     307               0 :                 $selectedFolder = $selectedFolder[1];                                                                       
     308               0 :             }                                                                                                               
     309               0 :         }                                                                                                                   
     310               0 :         if (!is_array($folderArr)) {                                                                                        
     311               0 :             echo "<table>";                                                                                                 
     312               0 :             if ($_SESSION['usergroup'] == STUDENT                                                                           
     313               0 :             || $_SESSION['usergroup'] == ALUMNUS                                                                            
     314               0 :             || $_SESSION['usergroup'] == SCHUELER                                                                           
     315               0 :             || $_SESSION['usergroup'] == GAST) {                                                                            
     316               0 :                 Output::errorMessage(                                                                                       
     317                 :                     "Entschuldigung, der Dozent oder Admin hat noch keine Ordner angelegt,                                  
     318               0 :                     deshalb k&ouml;nnen Sie derzeit keine Dateien hochladen.", 1                                            
     319               0 :                 );                                                                                                          
     320               0 :             } else Output::errorMessage(                                                                                    
     321               0 :                 "Sie m&uuml;ssen erst einen Hauptordner anlegen, bevor Studenten etwas hochladen k&ouml;nnen!", 1           
     322               0 :             );                                                                                                              
     323               0 :             echo "</table>";                                                                                                
     324               0 :             $form->addLine(                                                                                                 
     325               0 :                 "&nbsp;", "Noch keine Ordner angelegt.<br/>Es ist nicht m&ouml;glich etwas                                  
     326                 :                 zu Erstellen oder Hochzuladen."                                                                             
     327               0 :             );                                                                                                              
     328               0 :         } else {                                                                                                            
     329               0 :             $form->addToNextTag("style='width:300;' id='folder'");                                                          
     330               0 :             $form->addSelect(                                                                                               
     331               0 :                 "folder", "Bitte geben Sie den Zielordner an".(($_SESSION['usergroup'] == STUDENT                           
     332               0 :             || $_SESSION['usergroup'] == ALUMNUS || $_SESSION['usergroup'] == SCHUELER                                      
     333               0 :             || $_SESSION['usergroup'] == GAST) ? "" : "<br/><span class='text10'>(ist ohne                                  
     334               0 :             Bedeutung, wenn Sie einen Hauptordner anlegen.)</span>"), $folderArr,                                           
     335               0 :             count($folderArr) > 10 ? 10 : count($folderArr), false, $selectedFolder                                         
     336               0 :             );                                                                                                              
     337                 :         }                                                                                                                   
     338               0 :         if (!$fileUpload) {                                                                                                 
     339               0 :             $description = (!is_null($copyFile)) ? $copyFile->getDescription() : "";                                        
     340               0 :             $form->addTextArea("comment", "Datei-Beschreibung (optional)", 40, 3, $description);                            
     341               0 :         }                                                                                                                   
     342               0 :         $visibleArr = array(array("Alle", "1"), array("Dozenten und Tutoren", "2"), array("Dozenten", "3"));                
     343               0 :         $form->addSelect(                                                                                                   
     344               0 :             "visible", "W&auml;hlen Sie hier die Benutzergruppe                                                             
     345               0 :             aus, die Ihren Eintrag sehen darf:", $visibleArr                                                                
     346               0 :         );                                                                                                                  
     347               0 :         $form->addButtons();                                                                                                
     348               0 :         if (($_SESSION['usergroup'] != STUDENT                                                                              
     349               0 :             && $_SESSION['usergroup'] != ALUMNUS                                                                            
     350               0 :             && $_SESSION['usergroup'] != SCHUELER                                                                           
     351               0 :             && $_SESSION['usergroup'] != GAST)                                                                              
     352               0 :             || isset($_SESSION["assistent"])                                                                                
     353               0 :             || (($_SESSION['usergroup'] != STUDENT                                                                          
     354               0 :             && $_SESSION['usergroup'] != ALUMNUS                                                                            
     355               0 :             && $_SESSION['usergroup'] != SCHUELER                                                                           
     356               0 :             && $_SESSION['usergroup'] != GAST)                                                                              
     357               0 :             || isset($_SESSION["assistent"])                                                                                
     358               0 :             && $course > 0))                                                                                                
     359               0 :         {                                                                                                                   
     360                 :             // Ueberschriftszeile                                                                                           
     361               0 :             $form->addRawCode("<tr><td class='tableHead' colspan='2'>Optionale Einstellungen</td></tr>");                   
     362                 :             // Wenn im Foyer dann Alle Anzeigen                                                                             
     363               0 :             if ($course == 0) $names = $db->get_results(                                                                    
     364                 :                 "SELECT ID, Vorname, Nachname FROM user WHERE Usergroup > 1 AND Invisible = 0 AND                           
     365               0 :                 ID <> ".$_SESSION["userid"]." ORDER BY Nachname, Vorname"                                                   
     366               0 :             );                                                                                                              
     367               0 :             else $names = $db->get_results(                                                                                 
     368               0 :                 "SELECT ID, Vorname, Nachname, user_course.courseID FROM user, user_course                                  
     369               0 :                 WHERE user.ID=user_course.userID AND user_course.courseID='$course' AND                                     
     370               0 :                 Usergroup > 1 AND userID <> ".$_SESSION["userid"]." ORDER BY Nachname, Vorname"                             
     371               0 :             );                                                                                                              
     372                 :             // Erstellt UserListe fuer Spezielle Sichtbarkeit                                                               
     373               0 :             $count = 0;                                                                                                     
     374               0 :             if (is_array($names)) foreach($names as $name) {                                                                
     375               0 :                 $visibleListArr[$count][0] = Data::toHTML($name->Nachname.", ".$name->Vorname, false);                      
     376               0 :                 $visibleListArr[$count++][1] = $name->ID;                                                                   
     377               0 :             }                                                                                                               
     378               0 :             if (!empty($visibleListArr)) $form->addSelect(                                                                  
     379               0 :                 "visibleList", "Hier k&ouml;nnen Sie zus&auml;tzliche Personen ausw&auml;hlen, die                          
     380                 :                 Ihren Eintrag sehen d&uuml;rfen:<br/>(F&uuml;r Mehrfachselektierung STRG-Taste beim                         
     381                 :                 Klicken gedr&uuml;ckt halten.)<br/><strong>(wird ignoriert, wenn als Benutzergruppe                         
     382               0 :                 &quot;Alle&quot; ausgew&auml;hlt ist!)</strong>", $visibleListArr, 10, true                                 
     383               0 :             );                                                                                                              
     384               0 :         }                                                                                                                   
     385               0 :         if (($_SESSION['usergroup'] != STUDENT                                                                              
     386               0 :             && $_SESSION['usergroup'] != ALUMNUS                                                                            
     387               0 :             && $_SESSION['usergroup'] != SCHUELER                                                                           
     388               0 :             && $_SESSION['usergroup'] != GAST)                                                                              
     389               0 :             || isset($_SESSION["assistent"])) {                                                                             
     390               0 :                 $form->addMarker();                                                                                         
     391                 :                 // Email-Benachrichtigungsfunktion                                                                          
     392               0 :                 $form->addInput(                                                                                            
     393               0 :                     "checkbox", "email", "Benachrichtigung an alle                                                          
     394               0 :                     <strong>Mitglieder</strong> per Email?", 0, 1                                                           
     395               0 :                 );                                                                                                          
     396               0 :                 $form->addInput(                                                                                            
     397               0 :                     "checkbox", "teacherEMail", "Benachrichtigung an alle                                                   
     398               0 :                     <strong>Dozenten</strong> per Email?", 0, 1                                                             
     399               0 :                 );                                                                                                          
     400               0 :                 $form->addButtons();                                                                                        
     401               0 :                 echo $form->getForm(0);                                                                                     
     402                 :                 /*  kalender plugin */                                                                                      
     403                 :                                                                                                                             
     404                 : ?>                                                                                                                          
     405                 : <tr>                                                                                                                        
     406                 :     <td class='tableCell'>F&uuml;r welche Zeit sichtbar?<br/>                                                               
     407               0 :     <span class='text10'>(wenn Sie nichts ausw&auml;hlen ist der Eintrag immer sichtbar)</span></td>                        
     408                 :     <td class='tableCell'>Anzeigebeginn Datum/Zeit:<br/>                                                                    
     409               0 : <?php                                                                                                                       
     410                 :                 //falls $_POST - Variablen vorhanden sind, auf das entsprechende Datum einstellen                           
     411               0 :                 if (isset($_POST['openDate_day'])) {                                                                        
     412               0 :                     $calendar->setDate($_POST['openDate_day'], $_POST['openDate_month'], $_POST['openDate_year']);          
     413               0 :                     $calendar->setTime($_POST['openDate_hour'], $_POST['openDate_minute']);                                 
     414               0 :                 }                                                                                                           
     415                 :                 //die Datums Auswahlfelder ausgeben                                                                         
     416               0 :                 $calendar->printCalender("openDate", "dateExt");                                                            
     417               0 :                 $calendar->printCalender("openDate", "time");                                                               
     418                 : ?>                                                                                                                          
     419                 :     <br/><br/>Anzeigeende Datum/Zeit:<br/>                                                                                  
     420               0 : <?php                                                                                                                       
     421                 :             //falls $_POST - Variablen vorhanden sind, auf das entsprechende Datum einstellen                               
     422               0 :                 if (isset($_POST['closeDate_day'])) {                                                                       
     423               0 :                     $calendar->setDate($_POST['closeDate_day'], $_POST['closeDate_month'], $_POST['closeDate_year']);       
     424               0 :                     $calendar->setTime($_POST['closeDate_hour'], $_POST['closeDate_minute']);                               
     425               0 :                 }                                                                                                           
     426               0 :                 $calendar->printCalender("closeDate", "dateExt");                                                           
     427               0 :                 $calendar->printCalender("closeDate", "time");                                                              
     428               0 :                 echo "    </td>\n</tr>\n";                                                                                  
     429                 :                 /* kalender plugin */                                                                                       
     430               0 :                 echo $form->getForm(1);                                                                                     
     431               0 :         } else {                                                                                                            
     432               0 :             echo $form->getForm();                                                                                          
     433                 :         }                                                                                                                   
     434               0 :     }                                                                                                                       
     435                 :     /**                                                                                                                     
     436                 :      * erstellt eine baumstrukur aller Ordner auf die der User Schreibrechte hat und die er sehen darf                      
     437                 :      * @access private                                                                                                      
     438                 :      * @param  ezsql [$fileID] -                                                                                            
     439                 :      * @param   string [$sqlAdd] - SQL zusatz, ist Usergruppenabhaenigig                                                    
     440                 :      * @param   array [$folderArr] - Array der Ermittelten Folder, ist ein Zeiger der Uebergeben wird                       
     441                 :      * @param   int [$count] - Ist der Array Zaehler von folderArr                                                          
     442                 :      * @param   string [$layer] - Sind die zeichen vorm Ordnernamen fuer visualisierung der baumstrukur                     
     443                 :      * @return Anzahl der Elemente im Array                                                                                 
     444                 :      */                                                                                                                     
     445                 :     public function printSubFolder($fileID, $sqlAdd, &$folderArr, $count = 0, $layer = "&#183;&#183;") {                    
     446               0 :         global $db;                                                                                                         
     447               0 :         $folders = $db->get_results(                                                                                        
     448                 :             "SELECT fileID, link, student_write, userID FROM filelist WHERE parent_object='".                               
     449               0 :             $fileID."' AND courseID=".$_SESSION['course']."  AND type='folder' $sqlAdd ORDER BY name"                       
     450               0 :         );                                                                                                                  
     451               0 :         if ($folders) foreach($folders as $folder) {                                                                        
     452               0 :             $folderArr[$count][0] = $layer." &#8226; ".Data::toHTML($folder->link, false);                                  
     453               0 :             $folderArr[$count++][1] = $folder->fileID;                                                                      
     454               0 :             $count = $this->printSubFolder($folder->fileID, $sqlAdd, $folderArr, $count, $layer."&#183;&#183;");            
     455               0 :         }                                                                                                                   
     456               0 :         return $count;                                                                                                      
     457                 :     }                                                                                                                       
     458                 :     /**                                                                                                                     
     459                 :      * Prüft ob die Dateigröße dem Limit im Config-File entspricht                                                       
     460                 :      * @access public                                                                                                       
     461                 :      * @param  integer $size -  Größe der Datei                                                                           
     462                 :      * @return bool     - true wenn Größe OK                                                                              
     463                 :      */                                                                                                                     
     464                 :     public function fileSizeOK($size) {                                                                                     
     465               0 :         if ($this->maxFileSize) {                                                                                           
     466               0 :             if (($size/1000000) > $this->maxFileSize) return false;                                                         
     467               0 :             if ($size <= 0) return false;                                                                                   
     468               0 :         }                                                                                                                   
     469               0 :         return true;                                                                                                        
     470                 :     }                                                                                                                       
     471                 :     /**                                                                                                                     
     472                 :      * Prüft ob der Dateityp laut Config-File erlaubt ist                                                                  
     473                 :      * @access public                                                                                                       
     474                 :      * @param  string $name - Dateiname                                                                                     
     475                 :      * @return bool     - true wenn Dateityp OK                                                                             
     476                 :      */                                                                                                                     
     477                 :     public function fileExtOK($name) {                                                                                      
     478               0 :         if ($this->forbiddenFileExtensions) {                                                                               
     479               0 :             $pos = strrpos($name, ".");                                                                                     
     480               0 :             if ($pos) {                                                                                                     
     481               0 :                 $ext = substr($name, $pos+1);                                                                               
     482               0 :                 if (is_array($this->forbiddenFileExtensions)) {                                                             
     483               0 :                     foreach($this->forbiddenFileExtensions as $value) {                                                     
     484               0 :                         if (strtolower($ext) == strtolower($value)) return false;                                           
     485               0 :                     }                                                                                                       
     486               0 :                 } elseif (strtolower($ext) == strtolower($this->forbiddenFileExtensions)) return false;                     
     487               0 :             }                                                                                                               
     488               0 :         }                                                                                                                   
     489               0 :         return true;                                                                                                        
     490                 :     }                                                                                                                       
     491                 :     /**                                                                                                                     
     492                 :      * Versendet die Benachrichtigungsmail für eine neue hochgeladene Datei.                                               
     493                 :      * @access public                                                                                                       
     494                 :      * @param integer $fileID - die ID der hochgeladenen Datei                                                              
     495                 :      * @param bool $toTeachers - ob die Emails nur an Dozenten geschickt werden sollen                                      
     496                 :      * @return bool                                                                                                         
     497                 :      */                                                                                                                     
     498                 :     public function sendEmail($fileID, $toTeachers = false) {                                                               
     499               0 :         global $db, $settings;                                                                                              
     500               0 :         if (!is_numeric($fileID)) return false;                                                                             
     501               0 :         $file = $db->get_row("SELECT * FROM filelist WHERE fileID='$fileID'");                                              
     502               0 :         if ($file) {                                                                                                        
     503               0 :             $email = new Email($_SESSION['userid']);                                                                        
     504               0 :             if ($toTeachers) {                                                                                              
     505               0 :                 if ($file->courseID == 0) {                                                                                 
     506               0 :                     $query = "SELECT ID FROM user WHERE Usergroup=3";                                                       
     507               0 :                 } else {                                                                                                    
     508                 :                     $query = "SELECT ID                                                                                     
     509                 :                           FROM user JOIN user_course ON ID=userID                                                           
     510               0 :                           WHERE courseID='".$file->courseID."' AND                                                          
     511               0 :                                 ((differentUsergroup=0 AND Usergroup=3) OR differentUsergroup=3)";                          
     512                 :                 }                                                                                                           
     513               0 :             } else {                                                                                                        
     514               0 :                 if ($file->courseID == 0) {                                                                                 
     515               0 :                     $query = "SELECT ID FROM user WHERE Invisible=0";                                                       
     516               0 :                 } else {                                                                                                    
     517               0 :                     $query = "SELECT userID FROM user_course WHERE courseID ='".$file->courseID."'";                        
     518                 :                 }                                                                                                           
     519                 :             }                                                                                                               
     520               0 :             $users = $db->get_col($query);                                                                                  
     521               0 :             if ($file->courseID > 0) {                                                                                      
     522               0 :                 $courseName = $db->get_var("SELECT Name FROM courses WHERE ID='".$file->courseID."'");                      
     523               0 :             }                                                                                                               
     524               0 :             $user = $db->get_row("SELECT Vorname, Nachname FROM user WHERE ID='".$file->userID."'");                        
     525               0 :             $subject = $settings["label"].": Neue Ressource im ".                                                           
     526               0 :                 (empty($courseName) ? "Foyer" : "Kurs \"$courseName\"");                                                    
     527               0 :             $message = "Guten Tag,\n\n".$user->Vorname." ".$user->Nachname." hat ".                                         
     528               0 :                 ($file->type == "link" ? "einen neuen Link" : ($file->type == "file" ?                                      
     529               0 :                  "eine neue Datei" : "einen neuen Ordner")) ." mit der Bezeichnung\n\n\t".                                  
     530               0 :                 $file->name.(empty($file->description) ? "" : "\n\n\t".$file->description) .                                
     531               0 :                 "\n\nim ".(empty($courseName) ? "Foyer" : "Kurs \"$courseName\"") .                                         
     532               0 :                 " bereitgestellt".($file->type == "link" ? ":\n\n\t<".$file->link.">" : ".") .                              
     533               0 :                 "\n\nViele Grüße,\n\nIhr Kursdozent";                                                                     
     534               0 :             return $email->sendMessageToUser($subject, $users, $message);                                                   
     535                 :         }                                                                                                                   
     536               0 :         return false;                                                                                                       
     537                 :     }                                                                                                                       
     538                 :     /**                                                                                                                     
     539                 :      * Wertet das Formular aus und traegt die Daten in die Datenbank ein                                                    
     540                 :      * @access public                                                                                                       
     541                 :      * @param array $data - Array mit dem Formulareintraegen                                                                
     542                 :      * @return bool - Erfolgswert                                                                                           
     543                 :      */                                                                                                                     
     544                 :     public function resolveForm($data) {                                                                                    
     545               0 :         global $db, $EZSQL_ERROR;                                                                                           
     546               0 :         echo "<table>";                                                                                                     
     547                 :         /* FEHLERUEBERPRUEFUNG BEGIN */                                                                                     
     548               0 :         if (!in_array($data["type"], array("folder", "link", "file", "ROOT"))) {                                            
     549               0 :             $error = "Bitte w&auml;hlen Sie aus, ob Sie einen Link oder einen Ordner erstellen wollen.";                    
     550               0 :             Output::errorMessage($error, 2);                                                                                
     551               0 :             echo "</table>";                                                                                                
     552               0 :             return false;                                                                                                   
     553                 :         }                                                                                                                   
     554               0 :         if ($data['link'] == "") {                                                                                          
     555               0 :                 switch ($data['type']) {                                                                                    
     556               0 :                     case 'ROOT':                                                                                            
     557               0 :                     case 'folder':                                                                                          
     558               0 :                         $error = "Sie haben keinen Ordnernamen angegeben!";                                                 
     559               0 :                         break;                                                                                              
     560                 :                                                                                                                             
     561               0 :                     case 'link':                                                                                            
     562               0 :                         $error = "Sie haben keinen Link angegeben!";                                                        
     563               0 :                         break;                                                                                              
     564                 :                                                                                                                             
     565               0 :                     case 'file':                                                                                            
     566               0 :                         $error = "Sie haben keine Datei ausgew&auml;hlt!";                                                  
     567               0 :                         break;                                                                                              
     568               0 :                 }                                                                                                           
     569               0 :                 Output::errorMessage($error, 2);                                                                            
     570               0 :             }                                                                                                               
     571               0 :             if ($data['name'] == "") {                                                                                      
     572               0 :                 switch ($data['type']) {                                                                                    
     573               0 :                     case 'ROOT':                                                                                            
     574               0 :                     case 'folder':                                                                                          
     575               0 :                         $error = "Sie haben keinen erl&auml;uternden Ordnernamen (Tooltip) angegeben!";                     
     576               0 :                         break;                                                                                              
     577                 :                                                                                                                             
     578               0 :                     case 'link':                                                                                            
     579               0 :                         $error = "Sie haben keinen Namen f&uuml;r den Link angegeben!";                                     
     580               0 :                         break;                                                                                              
     581                 :                                                                                                                             
     582               0 :                     case 'file':                                                                                            
     583               0 :                         $error = "Sie haben keinen Namen f&uuml;r die  Datei angegeben!";                                   
     584               0 :                         break;                                                                                              
     585               0 :                 }                                                                                                           
     586               0 :                 if (!empty($error)) Output::errorMessage($error, 2);                                                        
     587               0 :             }                                                                                                               
     588               0 :             if ($data['parent_object'] == "" && $data['type'] != 'ROOT') {                                                  
     589               0 :                 $error = "Sie haben keinen Zielordner ausgew&auml;hlt!";                                                    
     590               0 :                 Output::errorMessage($error, 2);                                                                            
     591               0 :             }                                                                                                               
     592               0 :             if ($data['type'] == 'link') {                                                                                  
     593               0 :                 if (!Utilities::validateURL($data['link'])) {                                                               
     594               0 :                     $error = "Sie haben eine ung&uuml;ltige URL angegeben!";                                                
     595               0 :                     Output::errorMessage($error, 2);                                                                        
     596               0 :                 }                                                                                                           
     597               0 :                 if (strlen($data['name']) > 40) {                                                                           
     598               0 :                     $error = "Linkname darf h&ouml;chstens 40 Zeichen lang sein.";                                          
     599               0 :                     Output::errorMessage($error, 2);                                                                        
     600               0 :                 }                                                                                                           
     601               0 :             }                                                                                                               
     602               0 :             if ($data['type'] == 'file') {                                                                                  
     603               0 :                 if ($data['orig_filename'] == '' || strlen($data['extension']) > 5 || strlen($data['extension']) < 0) {     
     604               0 :                     $error = "Keine Datei ausgew&auml;hlt oder Dateiendung ung&uuml;ltig! (L&auml;nge hinter . 1-4)";       
     605               0 :                     Output::errorMessage($error, 2);                                                                        
     606               0 :                     if ($data['tmpfileTmpName'] != '') unlink($data['tmpfileTmpName']);                                     
     607               0 :                 } elseif (!($this->fileSizeOK($data['size']))) {                                                            
     608               0 :                     $error = "Datei ist entweder &uuml;ber der zul&auml;ssigen Gr&ouml;&szlig;e, oder sie ist leer!";       
     609               0 :                     Output::errorMessage($error, 2);                                                                        
     610               0 :                     if ($data['tmpfileTmpName'] != '') unlink($data['tmpfileTmpName']);                                     
     611               0 :                 } elseif (!($this->fileExtOK($data['orig_filename']))) {                                                    
     612               0 :                     $error = "Dateityp ist nicht erlaubt!";                                                                 
     613               0 :                     Output::errorMessage($error, 2);                                                                        
     614               0 :                     if ($data['tmpfileTmpName'] != '') unlink($data['tmpfileTmpName']);                                     
     615               0 :                 }                                                                                                           
     616               0 :             }                                                                                                               
     617               0 :             if ($data['type'] == 'folder') {                                                                                
     618               0 :                 if (strlen($data['link']) > 20) {                                                                           
     619               0 :                     $error = "Ordnername darf h&ouml;chstens 20 Zeichen lang sein.";                                        
     620               0 :                     Output::errorMessage($error, 2);                                                                        
     621               0 :                 }                                                                                                           
     622               0 :             }                                                                                                               
     623                 :             // Wenn bis hierher schon ein Fehler festgestellt wurde bricht er ab                                            
     624               0 :             if (isset($error)) {                                                                                            
     625               0 :                 echo "</table>";                                                                                            
     626               0 :                 return false;                                                                                               
     627                 :             }                                                                                                               
     628                 :             /* FEHLERUEBERPRUEFUNG ENDE */                                                                                  
     629               0 :             switch ($data['type']) {                                                                                        
     630               0 :                 case 'ROOT': // Hauptordner anlegen                                                                         
     631               0 :                     $data['type'] = 'folder';                                                                               
     632               0 :                     $data['parent_object'] = 0;                                                                             
     633               0 :                     $type = "von Hauptordner";                                                                              
     634               0 :                     break;                                                                                                  
     635                 :                                                                                                                             
     636               0 :                 case 'folder': // Unterordner anlegen                                                                       
     637               0 :                     $type = "von Ordner";                                                                                   
     638               0 :                     break;                                                                                                  
     639                 :                                                                                                                             
     640               0 :                 case 'link':                                                                                                
     641               0 :                     $type = "von Link";                                                                                     
     642               0 :                     break;                                                                                                  
     643                 :                                                                                                                             
     644               0 :                 case 'file':                                                                                                
     645               0 :                     $type = "von Datei";                                                                                    
     646               0 :                     break;                                                                                                  
     647               0 :             }                                                                                                               
     648                 :             // Baut die SQL Abfrage anhand des Arrays data auf.                                                             
     649                 :             // Alle Felder ohne "tmp" werden als FeldName benutzt und ihr Wert in die DB eingetragen                        
     650               0 :             $sqlKeys = $sqlValues = '';                                                                                     
     651               0 :             foreach($data as $key => $value) {                                                                              
     652               0 :                 if (!strstr($key, "tmp")) {                                                                                 
     653               0 :                     $sqlKeys.= $key.',';                                                                                    
     654               0 :                     $sqlValues.= "'".Data::toMysql($value) ."',";                                                           
     655               0 :                 }                                                                                                           
     656               0 :             }                                                                                                               
     657                 :             // Ordner existiert schon ??                                                                                    
     658               0 :             if ($data['type'] == 'folder' && ($db->get_var(                                                                 
     659               0 :                 "SELECT fileID FROM filelist WHERE parent_object='".$data['parent_object'].                                 
     660               0 :                 "' AND courseID =".$data['courseID']." AND link='".$data['link']."' LIMIT 1"                                
     661               0 :             ) != "")) {                                                                                                     
     662               0 :                 Output::errorMessage(                                                                                       
     663                 :                     "Ein Ordner mit dem selben Namen existiert schon in diesem Ordner.                                      
     664               0 :                     <br/>W&auml;hlen Sie bitte einen anderen Namen.", 2                                                     
     665               0 :                 );                                                                                                          
     666               0 :                 echo "</table>";                                                                                            
     667               0 :                 return false;                                                                                               
     668                 :             }                                                                                                               
     669                 :             // Selber Link schon in diesem Ordner vorhanden ??                                                              
     670               0 :             if ($data['type'] == 'link' && $db->get_var(                                                                    
     671                 :                   "SELECT fileID FROM filelist WHERE parent_object='".                                                      
     672               0 :                    $data['parent_object']."' AND courseID=".$_SESSION['course'].                                            
     673               0 :                    " AND link='".$data['link']."' LIMIT 1"                                                                  
     674               0 :                    ) != "") {                                                                                               
     675               0 :                     Output::errorMessage("Ein Link mit dem selben Namen existiert bereits in diesem Ordner!", 2);           
     676               0 :                     echo "</table>";                                                                                        
     677               0 :                     return false;                                                                                           
     678                 :             }                                                                                                               
     679                 :             // SQL Abfrage ohne Endene Kommas                                                                               
     680               0 :             $sql = "INSERT INTO filelist (".substr($sqlKeys, 0, -1) .") VALUES (".substr($sqlValues, 0, -1) .")";           
     681               0 :             $errorCount = count($EZSQL_ERROR);                                                                              
     682               0 :             $db->query($sql);                                                                                               
     683               0 :             $data['fileID'] = $db->insert_id;                                                                               
     684               0 :             if (count($EZSQL_ERROR) > $errorCount || $data['fileID'] < 0) {                                                 
     685               0 :                 Output::errorMessage("Fehler beim Anlegen ".$type." in der Datenbank!");                                    
     686               0 :                 echo "</table>";                                                                                            
     687               0 :                 return false;                                                                                               
     688               0 :             } elseif ($data['type'] == 'file') {                                                                            
     689               0 :                 if (!$this->uploadFile($data)) {                                                                            
     690               0 :                     $db->query("DELETE FROM filelist WHERE fileID='${data['fileID']}'");                                    
     691               0 :                     $data['fileID'] = "";                                                                                   
     692               0 :                     Output::errorMessage("Aktion nicht erfolgreich durchgef&uuml;hrt!", 2);                                 
     693               0 :                     echo "</table>";                                                                                        
     694               0 :                     return false;                                                                                           
     695                 :                 }                                                                                                           
     696               0 :             }                                                                                                               
     697               0 :             if (isset($this->role)) {                                                                                       
     698               0 :                 RoleArtefacts::setRoleForItem(RESSOURCE, $data["fileID"], $_SESSION["roleID"]);                             
     699               0 :             }                                                                                                               
     700               0 :             if (isset($this->team)) {                                                                                       
     701               0 :                 TeamArtefacts::setTeamForItem(RESSOURCE, $data["fileID"], $_SESSION["teamID"]);                             
     702               0 :             }                                                                                                               
     703               0 :             if ($data['fileID'] && $data['visible_type'] != 1 && isset($data['tmpfileVisibleList'])) {                      
     704                 :                 // Spezielle UserSichtbarkeit in DB eintragen                                                               
     705               0 :                 $errorCount = count($EZSQL_ERROR);                                                                          
     706               0 :                 foreach($data['tmpfileVisibleList'] as $value) {                                                            
     707               0 :                     $db->query("INSERT INTO filevisible (fileID,userID) VALUES(".$data['fileID'].",".$value.")");           
     708               0 :                 }                                                                                                           
     709               0 :                 if (count($EZSQL_ERROR) > $errorCount) {                                                                    
     710               0 :                     Output::errorMessage("Aktion nicht erfolgreich durchgef&uuml;hrt!", 2);                                 
     711               0 :                     echo "</table>";                                                                                        
     712               0 :                     return false;                                                                                           
     713                 :                 }                                                                                                           
     714               0 :             }                                                                                                               
     715               0 :             if ($data['type'] != 'file') {                                                                                  
     716               0 :                 if ($data['tmpemail'] || $data['tmpteacherEMail']) {                                                        
     717               0 :                     if ($this->sendEmail($data['fileID'], ($data['tmpteacherEMail'] && !$data['tmpemail'])))                
     718               0 :                         Output::echoMessage("Benachrichtigungs-Mails versandt.", 2);                                        
     719               0 :                     else Output::errorMessage("Benachrichtigungs-Mails konnten nicht versandt werden!", 2);                 
     720               0 :                 }                                                                                                           
     721               0 :             }                                                                                                               
     722               0 :             Output::echoMessage("Aktion wurde erfolgreich durchgef&uuml;hrt!", 2);                                          
     723               0 :             echo "</table>";                                                                                                
     724               0 :             unset($_POST);                                                                                                  
     725               0 :             if ($data['type'] == 'file') {                                                                                  
     726                 :                 // hochgeladene Datei indizieren                                                                            
     727               0 :                 $spider = new Spider();                                                                                     
     728               0 :                 $spider->start("add-file", $data['fileID']);                                                                
     729               0 :             }                                                                                                               
     730               0 :             return $data["fileID"];                                                                                         
     731                 :         }                                                                                                                   
     732                 :         /**                                                                                                                 
     733                 :          * Laed die Datei mit der fileID $fileID hoch                                                                       
     734                 :          *                                                                                                                  
     735                 :          * @param array [$data] Array mit den Formular-Eingaben                                                             
     736                 :          * @return boolean Erfolgswert                                                                                      
     737                 :          * @access private                                                                                                  
     738                 :          */                                                                                                                 
     739                 :         private function uploadFile($data) {                                                                                
     740               0 :             global $settings;                                                                                               
     741                 :             // Konstruktion des Uploadverzeichnis                                                                           
     742               0 :             $uploaddir = PATH_TO_ROOT.$settings["upload_path"].'filemanager/courseID/'.$data['courseID'].'/';               
     743                 :             // Verzeichnis anlegen wenn noch nicht vorhanden                                                                
     744               0 :             if (!(is_dir($uploaddir))) Utilities::mkdir_r($uploaddir);                                                      
     745               0 :             $uploadSuccess = false;                                                                                         
     746                 :             // Datei wird hochgeladen                                                                                       
     747               0 :             if (isset($data['tmpfileTmpName'])) {                                                                           
     748               0 :                 $uploadSuccess = move_uploaded_file($data['tmpfileTmpName'], $uploaddir.$data['link']);                     
     749               0 :             } else if (isset($data['tmpPathToFile'])) {                                                                     
     750               0 :                 $uploadSuccess = copy($data['tmpPathToFile'], $uploaddir.$data['link']);                                    
     751               0 :             }                                                                                                               
     752               0 :             if ( $uploadSuccess ) {                                                                                         
     753               0 :                 if ($data['tmpemail'] || $data['tmpteacherEMail']) {                                                        
     754               0 :                     if ($this->sendEmail($data['fileID'], ($data['tmpteacherEMail'] && !$data['tmpemail'])))                
     755               0 :                         Output::echoMessage("Benachrichtigungs-Mails versandt.", 1);                                        
     756               0 :                     else Output::errorMessage("Benachrichtigungs-Mails konnten nicht versandt werden!", 1);                 
     757               0 :                 }                                                                                                           
     758               0 :                 Output::echoMessage("Datei erfolgreich gesendet", 1);                                                       
     759               0 :                 return true;                                                                                                
     760                 :             } else {                                                                                                        
     761               0 :                 Output::errorMessage("Fehler beim Senden der Datei aufgetreten!", 1);                                       
     762               0 :                 return false;                                                                                               
     763                 :             }                                                                                                               
     764                 :         }                                                                                                                   
     765                 :     }                                                                                                                       

Generated by PHPUnit 3.2.21 and Xdebug 2.0.3 at Thu Nov 26 17:01:15 CET 2009.